tests/gpg: fix GPG-dependent shell tests if no GPG support
authorDenis Pynkin <denis.pynkin@collabora.com>
Mon, 29 Jul 2019 23:39:12 +0000 (02:39 +0300)
committerAtomic Bot <atomic-devel@projectatomic.io>
Thu, 1 Aug 2019 02:06:47 +0000 (02:06 +0000)
Skip tests or run them without GPG-related functionality if GPGME
wasn't enabled in a build time.

Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
Closes: #1889
Approved by: cgwalters

tests/pull-test.sh
tests/test-create-usb.sh
tests/test-find-remotes.sh
tests/test-local-pull.sh
tests/test-parent.sh
tests/test-pull-collections.sh
tests/test-pull-mirror-summary.sh
tests/test-pull-repeated.sh
tests/test-pull-summary-sigs.sh
tests/test-summary-update.sh
tests/test-summary-view.sh

index a8bc49a9eee31bb450e6db14737d60f85bab2d27..0a97a11955826707d49ae185a6fbc613f5a2627c 100644 (file)
@@ -54,7 +54,12 @@ function verify_initial_contents() {
     assert_file_has_content baz/cow '^moo$'
 }
 
-echo "1..34"
+if has_gpgme; then
+    echo "1..34"
+else
+    # 3 tests needs GPG support
+    echo "1..31"
+fi
 
 # Try both syntaxes
 repo_init --no-gpg-verify
@@ -543,13 +548,15 @@ fi
 assert_file_has_content err.txt "404"
 echo "ok pull repo 404"
 
-cd ${test_tmpdir}
-repo_init --set=gpg-verify=true
-if ${CMD_PREFIX} ostree --repo=repo --depth=0 pull origin main 2>err.txt; then
-    assert_not_reached "pull repo 404 succeeded?"
+if has_gpgme; then
+    cd ${test_tmpdir}
+    repo_init --set=gpg-verify=true
+    if ${CMD_PREFIX} ostree --repo=repo --depth=0 pull origin main 2>err.txt; then
+        assert_not_reached "pull repo 404 succeeded?"
+    fi
+    assert_file_has_content err.txt "GPG verification enabled, but no signatures found"
+    echo "ok pull repo 404 (gpg)"
 fi
-assert_file_has_content err.txt "GPG verification enabled, but no signatures found"
-echo "ok pull repo 404 (gpg)"
 
 cd ${test_tmpdir}
 find ostree-srv/gnomerepo/objects -name '*.dirtree' | while read f; do mv ${f}{,.orig}; done
@@ -561,29 +568,31 @@ assert_file_has_content err.txt "404"
 find ostree-srv/gnomerepo/objects -name '*.dirtree.orig' | while read f; do mv ${f} $(dirname $f)/$(basename ${f} .orig); done
 echo "ok pull repo 404 on dirtree object"
 
-cd ${test_tmpdir}
-repo_init --set=gpg-verify=true
-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} \
-  --gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1} -b main \
-  -s "A signed commit" --tree=ref=main
-${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u
-# make sure gpg verification is correctly on
-csum=$(${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo rev-parse main)
-objpath=objects/${csum::2}/${csum:2}.commitmeta
-remotesig=ostree-srv/gnomerepo/$objpath
-localsig=repo/$objpath
-mv $remotesig $remotesig.bak
-if ${CMD_PREFIX} ostree --repo=repo --depth=0 pull origin main; then
-    assert_not_reached "pull with gpg-verify unexpectedly succeeded?"
+if has_gpgme; then
+    cd ${test_tmpdir}
+    repo_init --set=gpg-verify=true
+    ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo commit ${COMMIT_ARGS} \
+      --gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1} -b main \
+      -s "A signed commit" --tree=ref=main
+    ${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo summary -u
+    # make sure gpg verification is correctly on
+    csum=$(${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo rev-parse main)
+    objpath=objects/${csum::2}/${csum:2}.commitmeta
+    remotesig=ostree-srv/gnomerepo/$objpath
+    localsig=repo/$objpath
+    mv $remotesig $remotesig.bak
+    if ${CMD_PREFIX} ostree --repo=repo --depth=0 pull origin main; then
+        assert_not_reached "pull with gpg-verify unexpectedly succeeded?"
+    fi
+    # ok now check that we can pull correctly
+    mv $remotesig.bak $remotesig
+    ${CMD_PREFIX} ostree --repo=repo pull origin main
+    echo "ok pull signed commit"
+    rm $localsig
+    ${CMD_PREFIX} ostree --repo=repo pull origin main
+    test -f $localsig
+    echo "ok re-pull signature for stored commit"
 fi
-# ok now check that we can pull correctly
-mv $remotesig.bak $remotesig
-${CMD_PREFIX} ostree --repo=repo pull origin main
-echo "ok pull signed commit"
-rm $localsig
-${CMD_PREFIX} ostree --repo=repo pull origin main
-test -f $localsig
-echo "ok re-pull signature for stored commit"
 
 cd ${test_tmpdir}
 repo_init --no-gpg-verify
index 8040ed9c993f39fd039746163d161c6b0740d567..8187ea75db7ccf1a3afa6119f8254c824d39ffcf 100755 (executable)
@@ -26,6 +26,8 @@ set -euo pipefail
 
 . $(dirname $0)/libtest.sh
 
+skip_without_gpgme
+
 echo "1..5"
 
 cd ${test_tmpdir}
index 226053ce73fc53e73df3a6dd8aef01887854c06e..5dd880f0c4fd1b4e2658f3ef9ddbf44f38455d0f 100755 (executable)
@@ -23,6 +23,8 @@ set -euo pipefail
 
 . $(dirname $0)/libtest.sh
 
+skip_without_gpgme
+
 echo '1..1'
 
 # Create two upstream collection repositories with some example commits
index 8168486ce75898dfe364934d2c501d9c96d62b78..97bb9954367b8288d83e818eb573b4223091ec33 100755 (executable)
@@ -28,7 +28,12 @@ unset OSTREE_GPG_HOME
 
 skip_without_user_xattrs
 
-echo "1..8"
+if has_gpgme; then
+    echo "1..8"
+else
+    # Only some tests doesn't need GPG support
+    echo "1..5"
+fi
 
 setup_test_repository "archive"
 echo "ok setup"
@@ -63,6 +68,20 @@ cmp checkout1.files checkout2.files
 cmp checkout1.files checkout3.files
 echo "ok checkouts same"
 
+mkdir repo7
+ostree_repo_init repo7 --mode="archive"
+${CMD_PREFIX} ostree --repo=repo7 pull-local repo
+${CMD_PREFIX} ostree --repo=repo7 fsck
+for src_object in `find repo/objects -name '*.filez'`; do
+    dst_object=${src_object/repo/repo7}
+    assert_files_hardlinked "$src_object" "$dst_object"
+done
+echo "ok pull-local z2 to z2 default hardlink"
+
+if ! has_gpgme; then
+    exit 0
+fi
+
 mkdir repo4
 ostree_repo_init repo4 --mode="archive"
 ${CMD_PREFIX} ostree --repo=repo4 remote add --gpg-import ${test_tmpdir}/gpghome/key1.asc origin repo
@@ -97,13 +116,3 @@ ${OSTREE} summary --update --gpg-sign=${TEST_GPG_KEYID_1} --gpg-homedir=${TEST_G
 ${CMD_PREFIX} ostree --repo=repo6 pull-local --remote=origin --gpg-verify-summary repo test2 2>&1
 
 echo "ok --gpg-verify-summary"
-
-mkdir repo7
-ostree_repo_init repo7 --mode="archive"
-${CMD_PREFIX} ostree --repo=repo7 pull-local repo
-${CMD_PREFIX} ostree --repo=repo7 fsck
-for src_object in `find repo/objects -name '*.filez'`; do
-    dst_object=${src_object/repo/repo7}
-    assert_files_hardlinked "$src_object" "$dst_object"
-done
-echo "ok pull-local z2 to z2 default hardlink"
index a9a3494c009ed73a399414f7c91a72637b08eb4f..b62b95577087dc2381c5755a0d72996daded96bc 100755 (executable)
@@ -25,6 +25,8 @@ set -euo pipefail
 
 skip_without_user_xattrs
 
+skip_without_gpgme
+
 echo '1..2'
 
 setup_test_repository "archive"
index fd782af9d667e9e679cfaceca140e2413067cc9c..d1de5f88f9acf50f4e5455e315a23996c1c61051 100755 (executable)
@@ -34,7 +34,11 @@ do_commit() {
 
     mkdir -p files
     pushd files
-    ${CMD_PREFIX} ostree --repo="../${repo}" commit -s "Test ${repo} commit for branch ${branch}" -b "${branch}" --gpg-homedir="${TEST_GPG_KEYHOME}" --gpg-sign="${TEST_GPG_KEYID_1}" "$@" > "../${branch}-checksum"
+    local GPG_ARGS=""
+    if has_gpgme; then
+        GPG_ARGS="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+    fi
+    ${CMD_PREFIX} ostree --repo="../${repo}" commit -s "Test ${repo} commit for branch ${branch}" -b "${branch}" ${GPG_ARGS} "$@" > "../${branch}-checksum"
     popd
 }
 
@@ -42,7 +46,11 @@ do_summary() {
     local repo=$1
     shift 1
 
-    ${CMD_PREFIX} ostree "--repo=${repo}" summary --update --gpg-homedir="${TEST_GPG_KEYHOME}" --gpg-sign="${TEST_GPG_KEYID_1}"
+    local GPG_ARGS=""
+    if has_gpgme; then
+        GPG_ARGS="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+    fi
+    ${CMD_PREFIX} ostree "--repo=${repo}" summary --update ${GPG_ARGS}
 }
 
 do_collection_ref_show() {
@@ -96,7 +104,11 @@ do_remote_add() {
     local remote_repo=$2
     shift 2
 
-    ${CMD_PREFIX} ostree "--repo=${repo}" remote add "${remote_repo}-remote" "file://$(pwd)/${remote_repo}" "$@" --gpg-import="${test_tmpdir}/gpghome/key1.asc"
+    local GPG_ARGS=""
+    if has_gpgme; then
+        GPG_ARGS="--gpg-import=${test_tmpdir}/gpghome/key1.asc"
+    fi
+    ${CMD_PREFIX} ostree "--repo=${repo}" remote add "${remote_repo}-remote" "file://$(pwd)/${remote_repo}" "$@" ${GPG_ARGS}
 }
 
 do_pull() {
index 504cf545cd0ceeaf6517073149c3ecab6a1bffe0..a2a98bad47876266e19fa5edfd548cb5124b9163 100755 (executable)
@@ -23,9 +23,15 @@ set -euo pipefail
 
 . $(dirname $0)/libtest.sh
 
-echo "1..5"
+COMMIT_SIGN=""
+if has_gpgme; then
+    COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+    echo "1..5"
+else
+    # Only one test don't need GPG support
+    echo "1..1"
+fi
 
-COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
 setup_fake_remote_repo1 "archive" "${COMMIT_SIGN}"
 
 # Now, setup multiple branches
index a2707d6d23e7203e84ccc41f2e5abc926d15baba..237a863c49ffbdda5b2fde84242c2c9dd02ab232 100755 (executable)
@@ -23,9 +23,12 @@ set -euo pipefail
 
 . $(dirname $0)/libtest.sh
 
-echo "1..4"
+COMMIT_SIGN=""
+if has_gpgme; then
+    COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+fi
 
-COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+echo "1..4"
 
 # Test pulling from a repo which gives error 500 (internal server error) a lot of the time.
 setup_fake_remote_repo1 "archive" "${COMMIT_SIGN}" --random-500s=50
index 0b6b806cb43c5c96e5bf032026ee059316398d6b..821ae95309b595d2437ee62e212982ecbe77242d 100755 (executable)
@@ -23,9 +23,15 @@ set -euo pipefail
 
 . $(dirname $0)/libtest.sh
 
-echo "1..10"
+COMMIT_SIGN=""
+if has_gpgme; then
+    COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+    echo "1..10"
+else
+    # Only one test don't need GPG support
+    echo "1..1"
+fi
 
-COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
 setup_fake_remote_repo1 "archive" "${COMMIT_SIGN}"
 
 # Now, setup multiple branches
index 062d5bd41745b9b4ad76b56ea1b0bf25b71ecf25..ceaa5409fd44116f9e3d55beca364019c9979a4b 100755 (executable)
@@ -28,6 +28,12 @@ set -euo pipefail
 
 echo "1..2"
 
+COMMIT_SIGN=""
+if has_gpgme; then
+    COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+fi
+
+
 cd ${test_tmpdir}
 mkdir repo
 ostree_repo_init repo
@@ -45,7 +51,7 @@ done
 ${CMD_PREFIX} ostree --repo=repo summary --update
 
 # Generate a signed summary file.
-${CMD_PREFIX} ostree --repo=repo summary --update --gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}
+${CMD_PREFIX} ostree --repo=repo summary --update ${COMMIT_SIGN}
 
 # Try various ways of adding additional data.
 ${CMD_PREFIX} ostree --repo=repo summary --update --add-metadata key="'value'" --add-metadata=key2=true
@@ -77,7 +83,7 @@ done
 ${CMD_PREFIX} ostree --repo=repo summary --update
 
 # Generate a signed summary file.
-${CMD_PREFIX} ostree --repo=repo summary --update --gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}
+${CMD_PREFIX} ostree --repo=repo summary --update ${COMMIT_SIGN}
 
 # Try various ways of adding additional data.
 ${CMD_PREFIX} ostree --repo=repo summary --update --add-metadata key="'value'" --add-metadata=key2=true
index d26d343118d40b47ca9a264bb29cbb471d626c45..14de0294c59b0aff68efdded0b50574abdb23e4b 100755 (executable)
@@ -28,7 +28,11 @@ set -euo pipefail
 
 echo "1..2"
 
-COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+COMMIT_SIGN=""
+if has_gpgme; then
+    COMMIT_SIGN="--gpg-homedir=${TEST_GPG_KEYHOME} --gpg-sign=${TEST_GPG_KEYID_1}"
+fi
+
 setup_fake_remote_repo1 "archive" "${COMMIT_SIGN}"
 
 # Set up a second branch.